using System;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("BoxCamera")]
	public class BoxCamera : MonoBehaviour
	{
		public enum State
		{
			CLOSED,
			CLOSED_WITH_DRAWER,
			OPENED,
			SET_ROTATION_OPENED
		}

		public BoxCameraEventTable m_EventTable => method_3<BoxCameraEventTable>("m_EventTable");

		public GameObject m_IgnoreFullscreenEffectsCamera => method_3<GameObject>("m_IgnoreFullscreenEffectsCamera");

		public GameObject m_TooltipCamera => method_3<GameObject>("m_TooltipCamera");

		public Box m_parent => method_3<Box>("m_parent");

		public BoxCameraStateInfo m_info => method_3<BoxCameraStateInfo>("m_info");

		public State m_state => method_2<State>("m_state");

		public bool m_disableAccelerometer => method_2<bool>("m_disableAccelerometer");

		public bool m_applyAccelerometer => method_2<bool>("m_applyAccelerometer");

		public Vector2 m_currentAngle => method_2<Vector2>("m_currentAngle");

		public Vector3 m_basePosition => method_2<Vector3>("m_basePosition");

		public Vector2 m_gyroRotation => method_2<Vector2>("m_gyroRotation");

		public float m_offset => method_2<float>("m_offset");

		public float MAX_GYRO_RANGE => method_2<float>("MAX_GYRO_RANGE");

		public float ROTATION_SCALE => method_2<float>("ROTATION_SCALE");

		public Vector3 m_lookAtPoint => method_2<Vector3>("m_lookAtPoint");

		public BoxCamera(IntPtr address, string className)
			: base(address, className)
		{
		}

		public BoxCamera(IntPtr address)
			: this(address, "BoxCamera")
		{
		}

		public void SetParent(Box parent)
		{
			method_8("SetParent", parent);
		}

		public Box GetParent()
		{
			return method_14<Box>("GetParent", Array.Empty<object>());
		}

		public BoxCameraStateInfo GetInfo()
		{
			return method_14<BoxCameraStateInfo>("GetInfo", Array.Empty<object>());
		}

		public void SetInfo(BoxCameraStateInfo info)
		{
			method_8("SetInfo", info);
		}

		public BoxCameraEventTable GetEventTable()
		{
			return method_14<BoxCameraEventTable>("GetEventTable", Array.Empty<object>());
		}

		public Vector3 GetCameraPosition(State state)
		{
			return method_11<Vector3>("GetCameraPosition", new object[1] { state });
		}

		public State GetState()
		{
			return method_11<State>("GetState", Array.Empty<object>());
		}

		public bool ChangeState(State state)
		{
			return method_11<bool>("ChangeState", new object[1] { state });
		}

		public void EnableAccelerometer()
		{
			method_8("EnableAccelerometer");
		}

		public void Update()
		{
			method_8("Update");
		}

		public void OnAnimFinished()
		{
			method_8("OnAnimFinished");
		}

		public void UpdateState(State state)
		{
			method_8("UpdateState", state);
		}
	}
}
